-- 音乐详细信息数据库表 DDL 语句 (基于新接口数据结构) (PostgreSQL版本)

-- 创建音乐详细信息表
CREATE TABLE music_detail (
    id BIGSERIAL PRIMARY KEY,
    rid VARCHAR(50) NOT NULL,
    name VARCHAR(255) NOT NULL,
    artist VARCHAR(255) NOT NULL,
    album VARCHAR(255),
    quality VARCHAR(100),
    duration VARCHAR(50),
    size VARCHAR(50),
    pic VARCHAR(500),
    url VARCHAR(500) NOT NULL,
    lrc TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 创建索引
CREATE UNIQUE INDEX idx_music_detail_rid ON music_detail(rid);
CREATE INDEX idx_music_detail_name ON music_detail(name);
CREATE INDEX idx_music_detail_artist ON music_detail(artist);
CREATE INDEX idx_music_detail_album ON music_detail(album);
CREATE INDEX idx_music_detail_created_at ON music_detail(created_at);

-- 常用查询示例
-- 1. 查询特定歌曲的详细信息
SELECT * FROM music_detail WHERE rid = '440613';

-- 2. 根据歌曲名查询
SELECT * FROM music_detail WHERE name LIKE '%稻香%';

-- 3. 根据艺术家查询
SELECT * FROM music_detail WHERE artist = '周杰伦';

-- 4. 查询特定专辑的歌曲
SELECT * FROM music_detail WHERE album = '魔杰座';

-- 5. 查询最近添加的歌曲
SELECT * FROM music_detail ORDER BY created_at DESC LIMIT 10;

-- 6. 统计不同音质的歌曲数量
SELECT quality, COUNT(*) as count FROM music_detail GROUP BY quality;

-- 创建更新时间自动更新函数
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = CURRENT_TIMESTAMP;
    RETURN NEW;
END;
$$ language 'plpgsql';

-- 创建触发器
CREATE TRIGGER update_music_detail_updated_at BEFORE UPDATE
ON music_detail FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();

-- 插入示例数据(基于你提供的稻香数据)
INSERT INTO music_detail (rid, name, artist, album, quality, duration, size, pic, url, lrc) VALUES
('440613', '稻香', '周杰伦', '魔杰座', '高音质 MP3', '3分43秒', '8.53 MB', 'http://img2.kuwo.cn/wmvpic/324/90/83/2025611079.jpg', 'https://er-sycdn.kuwo.cn/8c5dae3c3df11f5f99b61eb9da3d1d6a/68aa9157/resource/30106/trackmedia/M800003aAYrm3GE0Ac.mp3', E'[00:00.00]稻香 - 周杰伦 (Jay Chou)\n[00:07.00]词：周杰伦\n[00:15.00]曲：周杰伦\n[00:23.00]编曲：黄雨勋\n[00:30.00]对这个世界如果你有太多的抱怨\n[00:34.00]跌倒了就不敢继续往前走\n[00:37.00]为什么人要这么的脆弱堕落\n[00:41.00]请你打开电视看看\n[00:43.00]多少人为生命在努力勇敢的走下去\n[00:47.00]我们是不是该知足\n[00:49.00]珍惜一切就算没有拥有\n[00:53.00]还记得你说家是唯一的城堡\n[00:57.00]随着稻香河流继续奔跑\n[01:00.00]微微笑 小时候的梦我知道\n[01:05.00]不要哭让萤火虫带着你逃跑\n[01:09.00]乡间的歌谣永远的依靠\n[01:12.00]回家吧 回到最初的美好\n[01:41.00]不要这么容易就想放弃\n[01:43.00]就像我说的\n[01:44.00]追不到的梦想换个梦不就得了\n[01:47.00]为自己的人生鲜艳上色\n[01:49.00]先把爱涂上喜欢的颜色\n[01:52.00]笑一个吧\n[01:53.00]功成名就不是目的\n[01:55.00]让自己快乐快乐这才叫做意义\n[01:58.00]童年的纸飞机\n[02:00.00]现在终于飞回我手里\n[02:04.00]所谓的那快乐\n[02:05.00]赤脚在田里追蜻蜓追到累了\n[02:08.00]偷摘水果被蜜蜂给叮到怕了\n[02:11.00]谁在偷笑呢\n[02:13.00]我靠着稻草人\n[02:14.00]吹着风 唱着歌 睡着了\n[02:17.00]午后吉他在虫鸣中更清脆\n[02:20.00]阳光洒在路上就不怕心碎\n[02:23.00]珍惜一切 就算没有拥有\n[02:27.00]还记得你说家是唯一的城堡\n[02:31.00]随着稻香河流继续奔跑\n[02:34.00]微微笑 小时候的梦我知道\n[02:39.00]不要哭让萤火虫带着你逃跑\n[02:43.00]乡间的歌谣永远的依靠\n[02:46.00]回家吧 回到最初的美好\n[02:51.00]还记得你说家是唯一的城堡\n[02:54.00]随着稻香河流继续奔跑\n[02:57.00]微微笑 小时候的梦我知道\n[03:02.00]不要哭让萤火虫带着你逃跑\n[03:06.00]乡间的歌谣永远的依靠\n[03:09.00]回家吧 回到最初的美好\n');